home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / c_lang / tccurses.lzh / UNCTRL.C < prev    next >
C/C++ Source or Header  |  1987-09-07  |  1KB  |  43 lines

  1. /****************************************************************/
  2. /* Unctrl() routines of the PCcurses package            */
  3. /*                                */
  4. /****************************************************************/
  5. /* This version of curses is based on ncurses, a curses version    */
  6. /* originally written by Pavel Curtis at Cornell University.    */
  7. /* I have made substantial changes to make it run on IBM PC's,    */
  8. /* and therefore consider myself free to make it public domain.    */
  9. /*        Bjorn Larsson (...mcvax!enea!infovax!bl)    */
  10. /****************************************************************/
  11. /* 1.0:    Release:                    870515    */
  12. /****************************************************************/
  13.  
  14. #include <curses.h>
  15. #include <curspriv.h>
  16.  
  17. static char    strbuf[3] = {0,0,0};
  18.  
  19. /****************************************************************/
  20. /* Unctrl() returns a char pointer to a string corresponding to    */
  21. /* argument character 'c'.                    */
  22. /****************************************************************/
  23.  
  24. char *unctrl(c)
  25.   char c;
  26.   {
  27.   int ic = c;
  28.   ic &= 0xff;
  29.   
  30.   if ((ic >= ' ') && (ic != 0x7f))        /* normal characters */
  31.     {
  32.     strbuf[0] = ic;
  33.     strbuf[1] = '\0';
  34.     return(strbuf);
  35.     } /* if */
  36.   strbuf[0] = '^';                /* '^' prefix */
  37.   if (c == 0x7f)                /* DEL */
  38.     strbuf[1] = '?';
  39.   else                        /* other control */
  40.     strbuf[1] = ic + '@';
  41.   return(strbuf);
  42.   } /* unctrl */
  43.